﻿<pre>
知识点一：JavaScript数据类型介绍：JS一共有6种数据类型
	1、Number  数值型
	2、String	字符串型  
	3、Boolean	布尔型 
	4、Undefined	未定义类型
		以上四种称为基本数据类型，NULL认为是特殊类型
	5、NULL	 
		第六个是一种复合数据类型
	6、Object	对象型
　

　
知识点二：JS类型检测操作符，注意是全部小写：typeof 
	typeof语法格式：typeof  变量 
	返回值：返回变量的类型，是上面6种类型之一。
　
	代码示例，各种类型 
	document.writeln(typeof a); 	//输出：undefined
	alert(a); 						//程序错误
	var a2;							//这个是未初始化的变量
	document.writeln(typeof a2); 	//输出：undefined
	alert(a2);						//提示: undefined

 
	说明：尚未定义的变量和定义变量但是没有赋值的是不一样的。
	尚未定义的a是不存在的所以alert会参数错误，下面的a2是定义了没有赋值默认会被赋予：undefined 
	但是使用typeof检测的结果都是未定义的，一个是说未定义的类型，一个是说值是未定义的也是未定义的类型。
 
 
	b = 2;
		document.writeln(typeof b); //输出：number  
	c = "冬瓜皮";
		typeof c; 	//结果：string
	d = "";			 
		typeof d;	//结果：string,空字符串
	e = null;
		typeof e;	//结果：object 
	t = true ;
		typeof t;	//结果 boolean
	o1 = new Object();
		typeof o1;	//结果：object
	o2 = null;
		typeof o2;	//结果：object
	o3 = {};
		typeof o3;	//结果：object
	

知识点三：null比较特别。
	null使用typeof 返回object并没有返回null,因为null是对空对象的引用。
	提示：老版本的浏览器中可能会有function类型，现在统一为object类型
	undefined 是未经过初始化赋值的变量
	null  是空对象的指针


 知识点四：NaN
 	not a  number 不是一个数值。
 	这是一个非常特殊的数值~
 	typeof NaN ;	//结果 number
 
 
 
 知识点五：数据类型的相互转换 
1、数值型转换成字符串型
	var nA = 2008; 
	var sB = nA.toString();
	typeof sB;  	//结果：字符串类型的 2008

2、开始带数值的字符串型转换成数值型
	var str = "2020CHINA";	
	parseInt(str);	 //结果：2020
 

3、开始为非数值型的转换为字符串型 
	var str = "CHINA1949";
	var i = parseInt(str); //结果  i = NaN ，Not a Number 不是一个数值的意思,强制把一个非数值型字符转化成字符直接返回NaN
	typeof i ;	//结果 number


4、布尔型转换成数值型
	var bTrue = true;
	parseInt(bTrue);	//结果为 NaN 


5、数值型转化成布尔型 
	var nTrue = 2008;
	var bTrue = Boolean (nTrue); 	//这种风格称为强制类型转换，类似的也有 String(value)，Number(value)
	bTrue;	//输出true,结论：所有非0值被认为是true，空值与0值被认为是false


知识点六：强制类型转换
	语法格式：
	类型名(数据值)
	案例：
	Boolean(5);
	String(6)
	Number("A")
	

知识点七：类型转换函数与强制类型转换的区别 
1、toString与String的区别
	A = null;
	b = A.toString();   //这样会产生一个错误，结果：b是空白	
	c = String(A);		//结果：：c为null 并且无错误

2、parseInt与Number强制类型转换的区别 
	parseInt(true)		//结果NaN，parseInt与parseFloat专门用于解析字符串
	Number(true));		//结果：1，Number可以用于任意类型的数据

3、Number转换规则如下
	Number(true); 	//输出：1，因为布尔型true会被转化成1，false会被转化为0，数值保持不变。
	Number(null);	//输出：0，因为null会被转化为0
	Number(""));	//输出0,空字符串会被转化为0 
	Number(undefined);	//输出 NaN
	Number("abc");		//输出NaN
	Number("22abc");	//输出NaN，任意非纯数值型的字符串都会转化成NaN



知识点八：parseInt与parseFloat专题 
	parseInt("10",   2);   //return   2 
	parseInt("10",   8);   //return   8 
	parseInt("10",   10);   //return   10
	parseInt("10",   16);   //return   16
 	
 	parseFloat("1.258元") //结果：1.258
 	
</script>
</pre>